home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 2 / Meeting Pearls Vol. II (1995)(GTI - Schatztruhe)[!].iso / Pearls / dev / GUI / BGUI / AmigaE / MacroFiles / bgui_macros.ma
Text File  |  1994-10-05  |  33KB  |  893 lines

  1. /*
  2. **      bgui_macros.mac2e - Mac2E macro definitions file.
  3. **
  4. **      (C) Copyright 1993-1994 Jaba Development.
  5. **      (C) Copyright 1993-1994 Jan van den Baard.
  6. **      All Rights Reserved.
  7. **
  8. **      A lot of these macros  depend in the 'tools/Boopsi.m'
  9. **      module of the AmigaE 3.0 distribution. Please include
  10. **      this module into your code.
  11. **/
  12.  
  13. /*****************************************************************************
  14.  *
  15.  *      General object creation macros.
  16.  */
  17. #define HGroupObject            BgUI_NewObjectA( BGUI_GROUP_GADGET,     [ TAG_IGNORE, 0
  18. #define VGroupObject            BgUI_NewObjectA( BGUI_GROUP_GADGET,     [ GROUP_STYLE, GRSTYLE_VERTICAL
  19. #define ButtonObject            BgUI_NewObjectA( BGUI_BUTTON_GADGET,    [ TAG_IGNORE, 0
  20. #define ToggleObject            BgUI_NewObjectA( BGUI_BUTTON_GADGET,    [ GA_TOGGLESELECT, TRUE
  21. #define CycleObject             BgUI_NewObjectA( BGUI_CYCLE_GADGET,     [ TAG_IGNORE, 0
  22. #define CheckBoxObject          BgUI_NewObjectA( BGUI_CHECKBOX_GADGET,  [ TAG_IGNORE, 0
  23. #define InfoObject              BgUI_NewObjectA( BGUI_INFO_GADGET,      [ TAG_IGNORE, 0
  24. #define StringObject            BgUI_NewObjectA( BGUI_STRING_GADGET,    [ TAG_IGNORE, 0
  25. #define PropObject              BgUI_NewObjectA( BGUI_PROP_GADGET,      [ TAG_IGNORE, 0
  26. #define IndicatorObject         BgUI_NewObjectA( BGUI_INDICATOR_GADGET, [ TAG_IGNORE, 0
  27. #define ProgressObject          BgUI_NewObjectA( BGUI_PROGRESS_GADGET,  [ TAG_IGNORE, 0
  28. #define SliderObject            BgUI_NewObjectA( BGUI_SLIDER_GADGET,    [ TAG_IGNORE, 0
  29. #define PageObject              BgUI_NewObjectA( BGUI_PAGE_GADGET,      [ TAG_IGNORE, 0
  30. #define MxObject                BgUI_NewObjectA( BGUI_MX_GADGET,        [ TAG_IGNORE, 0
  31. #define ListviewObject          BgUI_NewObjectA( BGUI_LISTVIEW_GADGET,  [ TAG_IGNORE, 0
  32. #define ExternalObject          BgUI_NewObjectA( BGUI_EXTERNAL_GADGET,  [ GA_LEFT, 0, GA_TOP, 0, GA_WIDTH, 0, GA_HEIGHT, 0
  33. #define SeperatorObject         BgUI_NewObjectA( BGUI_SEPERATOR_GADGET, [ TAG_IGNORE, 0
  34. #define WindowObject            BgUI_NewObjectA( BGUI_WINDOW_OBJECT,    [ TAG_IGNORE, 0
  35. #define FileReqObject           BgUI_NewObjectA( BGUI_FILEREQ_OBJECT,   [ TAG_IGNORE, 0
  36. #define CommodityObject         BgUI_NewObjectA( BGUI_COMMODITY_OBJECT, [ TAG_IGNORE, 0
  37.  
  38. #define EndObject               TAG_END ] )
  39.  
  40. /*****************************************************************************
  41.  *
  42.  *      Frames.
  43.  */
  44. #define ButtonFrame             FRM_TYPE, FRTYPE_BUTTON
  45. #define RidgeFrame              FRM_TYPE, FRTYPE_RIDGE
  46. #define DropBoxFrame            FRM_TYPE, FRTYPE_DROPBOX
  47. #define NeXTFrame               FRM_TYPE, FRTYPE_NEXT
  48. #define RadioFrame              FRM_TYPE, FRTYPE_RADIOBUTTON
  49. #define XenFrame                FRM_TYPE, FRTYPE_XEN_BUTTON
  50.  
  51. /* For clarity. */
  52. #define StringFrame             RidgeFrame
  53. #define MxFrame                 RadioFrame
  54.  
  55. #define FrameTitle(t)           FRM_TITLE, t
  56.  
  57. /* Built-in back fills */
  58. #define ShineRaster             FRM_BACKFILL, SHINE_RASTER
  59. #define ShadowRaster            FRM_BACKFILL, SHADOW_RASTER
  60. #define ShineShadowRaster       FRM_BACKFILL, SHINE_SHADOW_RASTER
  61. #define FillRaster              FRM_BACKFILL, FILL_RASTER
  62. #define ShineFillRaster         FRM_BACKFILL, SHINE_FILL_RASTER
  63. #define ShadowFillRaster        FRM_BACKFILL, SHADOW_FILL_RASTER
  64. #define ShineBlock              FRM_BACKFILL, SHINE_BLOCK
  65. #define ShadowBlock             FRM_BACKFILL, SHADOW_BLOCK
  66.  
  67. /*****************************************************************************
  68.  *
  69.  *      Vector images.
  70.  */
  71. #define GetPath                 VIT_BUILTIN, BUILTIN_GETPATH
  72. #define GetFile                 VIT_BUILTIN, BUILTIN_GETFILE
  73. #define CheckMark               VIT_BUILTIN, BUILTIN_CHECKMARK
  74. #define PopUp                   VIT_BUILTIN, BUILTIN_POPUP
  75. #define ArrowUp                 VIT_BUILTIN, BUILTIN_ARROW_UP
  76. #define ArrowDown               VIT_BUILTIN, BUILTIN_ARROW_DOWN
  77. #define ArrowLeft               VIT_BUILTIN, BUILTIN_ARROW_LEFT
  78. #define ArrowRight              VIT_BUILTIN, BUILTIN_ARROW_RIGHT
  79.  
  80. /*****************************************************************************
  81.  *
  82.  *      Group class macros.
  83.  */
  84. #define StartMember             GROUP_MEMBER
  85. #define EndMember               TAG_END, 0
  86. #define Spacing(p)              GROUP_SPACING, p
  87. #define HOffset(p)              GROUP_HORIZOFFSET, p
  88. #define VOffset(p)              GROUP_VERTOFFSET, p
  89. #define LOffset(p)              GROUP_LEFTOFFSET, p
  90. #define ROffset(p)              GROUP_RIGHTOFFSET, p
  91. #define TOffset(p)              GROUP_TOPOFFSET, p
  92. #define BOffset(p)              GROUP_BOTTOMOFFSET, p
  93. #define VarSpace(w)             GROUP_SPACEOBJECT, w
  94.  
  95. /*****************************************************************************
  96.  *
  97.  *      Layout macros.
  98.  */
  99. #define FixMinWidth             LGO_FIXMINWIDTH, TRUE
  100. #define FixMinHeight            LGO_FIXMINHEIGHT, TRUE
  101. #define Weight(w)               LGO_WEIGHT, w
  102. #define FixWidth(w)             LGO_FIXWIDTH, w
  103. #define FixHeight(h)            LGO_FIXHEIGHT, h
  104. #define Align                   LGO_ALIGN, TRUE
  105. #define FixMinSize              FixMinWidth, FixMinHeight
  106. #define FixSize(w,h)            FixWidth(w), FixHeight(h)
  107.  
  108. /*****************************************************************************
  109.  *
  110.  *      Page class macros.
  111.  */
  112. #define PageMember              PAGE_MEMBER
  113.  
  114. /*****************************************************************************
  115.  *
  116.  *      "Quick" button creation macros.
  117.  */
  118. #define Button(label,id)\
  119.         ButtonObject,\
  120.                 LAB_LABEL,              label,\
  121.                 GA_ID,                  id,\
  122.                 FRM_TYPE,               FRTYPE_BUTTON,\
  123.         EndObject
  124.  
  125. #define KeyButton(label,id)\
  126.         ButtonObject,\
  127.                 LAB_LABEL,              label,\
  128.                 LAB_UNDERSCORE,         "_",\
  129.                 GA_ID,                  id,\
  130.                 FRM_TYPE,               FRTYPE_BUTTON,\
  131.         EndObject
  132.  
  133. #define Toggle(label,state,id)\
  134.         ToggleObject,\
  135.                 LAB_LABEL,              label,\
  136.                 GA_ID,                  id,\
  137.                 GA_SELECTED,            state,\
  138.                 FRM_TYPE,               FRTYPE_BUTTON,\
  139.         EndObject
  140.  
  141. #define KeyToggle(label,state,id)\
  142.         ToggleObject,\
  143.                 LAB_LABEL,              label,\
  144.                 LAB_UNDERSCORE,         "_",\
  145.                 GA_ID,                  id,\
  146.                 GA_SELECTED,            state,\
  147.                 FRM_TYPE,               FRTYPE_BUTTON,\
  148.         EndObject
  149.  
  150. #define XenButton(label,id)\
  151.         ButtonObject,\
  152.                 LAB_LABEL,              label,\
  153.                 GA_ID,                  id,\
  154.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  155.         EndObject
  156.  
  157. #define XenKeyButton(label,id)\
  158.         ButtonObject,\
  159.                 LAB_LABEL,              label,\
  160.                 LAB_UNDERSCORE,         "_",\
  161.                 GA_ID,                  id,\
  162.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  163.         EndObject
  164.  
  165. #define XenToggle(label,state,id)\
  166.         ToggleObject,\
  167.                 LAB_LABEL,              label,\
  168.                 GA_ID,                  id,\
  169.                 GA_SELECTED,            state,\
  170.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  171.         EndObject
  172.  
  173. #define XenKeyToggle(label,state,id)\
  174.         ToggleObject,\
  175.                 LAB_LABEL,              label,\
  176.                 LAB_UNDERSCORE,         "_",\
  177.                 GA_ID,                  id,\
  178.                 GA_SELECTED,            state,\
  179.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  180.         EndObject
  181. /*****************************************************************************
  182.  *
  183.  *      "Quick" cycle creation macros.
  184.  */
  185. #define Cycle(label,labels,active,id)\
  186.         CycleObject,\
  187.                 LAB_LABEL,              label,\
  188.                 GA_ID,                  id,\
  189.                 FRM_TYPE,               FRTYPE_BUTTON,\
  190.                 CYC_LABELS,             labels,\
  191.                 CYC_ACTIVE,             active,\
  192.         EndObject
  193.  
  194. #define KeyCycle(label,labels,active,id)\
  195.         CycleObject,\
  196.                 LAB_LABEL,              label,\
  197.                 LAB_UNDERSCORE,         "_",\
  198.                 GA_ID,                  id,\
  199.                 FRM_TYPE,               FRTYPE_BUTTON,\
  200.                 CYC_LABELS,             labels,\
  201.                 CYC_ACTIVE,             active,\
  202.         EndObject
  203.  
  204. #define XenCycle(label,labels,active,id)\
  205.         CycleObject,\
  206.                 LAB_LABEL,              label,\
  207.                 GA_ID,                  id,\
  208.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  209.                 CYC_LABELS,             labels,\
  210.                 CYC_ACTIVE,             active,\
  211.         EndObject
  212.  
  213. #define XenKeyCycle(label,labels,active,id)\
  214.         CycleObject,\
  215.                 LAB_LABEL,              label,\
  216.                 LAB_UNDERSCORE,         "_",\
  217.                 GA_ID,                  id,\
  218.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  219.                 CYC_LABELS,             labels,\
  220.                 CYC_ACTIVE,             active,\
  221.         EndObject
  222.  
  223. #define PopCycle(label,labels,active,id)\
  224.         CycleObject,\
  225.                 LAB_Label,              label,\
  226.                 GA_ID,                  id,\
  227.                 FRM_TYPE,               FRTYPE_BUTTON,\
  228.                 CYC_LABELS,             labels,\
  229.                 CYC_ACTIVE,             active,\
  230.                 CYC_POPUP,              TRUE,\
  231.         EndObject
  232.  
  233. #define KeyPopCycle(label,labels,active,id)\
  234.         CycleObject,\
  235.                 LAB_LABEL,              label,\
  236.                 LAB_UNDERSCORE,         "_",\
  237.                 GA_ID,                  id,\
  238.                 FRM_TYPE,               FRTYPE_BUTTON,\
  239.                 CYC_LABELS,             labels,\
  240.                 CYC_ACTIVE,             active,\
  241.                 CYC_POPUP,              TRUE,\
  242.         EndObject
  243.  
  244. #define XenPopCycle(label,labels,active,id)\
  245.         CycleObject,\
  246.                 LAB_LABEL,              label,\
  247.                 GA_ID,                  id,\
  248.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  249.                 CYC_LABELS,             labels,\
  250.                 CYC_ACTIVE,             active,\
  251.                 CYC_POPUP,              TRUE,\
  252.         EndObject
  253.  
  254. #define XenKeyPopCycle(label,labels,active,id)\
  255.         CycleObject,\
  256.                 LAB_LABEL,              label,\
  257.                 LAB_UNDERSCORE,         "_",\
  258.                 GA_ID,                  id,\
  259.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  260.                 CYC_LABELS,             labels,\
  261.                 CYC_ACTIVE,             active,\
  262.                 CYC_POPUP,              TRUE,\
  263.         EndObject
  264.  
  265. /*****************************************************************************
  266.  *
  267.  *      "Quick" checkbox creation macros.
  268.  */
  269. #define CheckBox(label,state,id)\
  270.         CheckBoxObject,\
  271.                 LAB_LABEL,              label,\
  272.                 GA_ID,                  id,\
  273.                 FRM_TYPE,               FRTYPE_BUTTON,\
  274.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  275.                 GA_SELECTED,            state,\
  276.         EndObject FixMinSize
  277.  
  278. #define KeyCheckBox(label,state,id)\
  279.         CheckBoxObject,\
  280.                 LAB_LABEL,              label,\
  281.                 LAB_UNDERSCORE,         "_",\
  282.                 GA_ID,                  id,\
  283.                 FRM_TYPE,               FRTYPE_BUTTON,\
  284.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  285.                 GA_SELECTED,            state,\
  286.         EndObject FixMinSize
  287.  
  288. #define XenCheckBox(label,state,id)\
  289.         CheckBoxObject,\
  290.                 LAB_LABEL,              label,\
  291.                 GA_ID,                  id,\
  292.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  293.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  294.                 GA_SELECTED,            state,\
  295.         EndObject FixMinSize
  296.  
  297. #define XenKeyCheckBox(label,state,id)\
  298.         CheckBoxObject,\
  299.                 LAB_LABEL,              label,\
  300.                 LAB_UNDERSCORE,         "_",\
  301.                 GA_ID,                  id,\
  302.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  303.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  304.                 GA_SELECTED,            state,\
  305.         EndObject FixMinSize
  306.  
  307. #define CheckBoxNF(label,state,id)\
  308.         CheckBoxObject,\
  309.                 LAB_LABEL,              label,\
  310.                 GA_ID,                  id,\
  311.                 FRM_TYPE,               FRTYPE_BUTTON,\
  312.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  313.                 GA_SELECTED,            state,\
  314.         EndObject
  315.  
  316. #define KeyCheckBoxNF(label,state,id)\
  317.         CheckBoxObject,\
  318.                 LAB_LABEL,              label,\
  319.                 LAB_UNDERSCORE,         "_",\
  320.                 GA_ID,                  id,\
  321.                 FRM_TYPE,               FRTYPE_BUTTON,\
  322.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  323.                 GA_SELECTED,            state,\
  324.         EndObject
  325.  
  326. #define XenCheckBoxNF(label,state,id)\
  327.         CheckBoxObject,\
  328.                 LAB_LABEL,              label,\
  329.                 GA_ID,                  id,\
  330.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  331.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  332.                 GA_SELECTED,            state,\
  333.         EndObject
  334.  
  335. #define XenKeyCheckBoxNF(label,state,id)\
  336.         CheckBoxObject,\
  337.                 LAB_LABEL,              label,\
  338.                 LAB_UNDERSCORE,         "_",\
  339.                 GA_ID,                  id,\
  340.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  341.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  342.                 GA_SELECTED,            state,\
  343.         EndObject
  344.  
  345. /*****************************************************************************
  346.  *
  347.  *      "Quick" info object creation macros.
  348.  */
  349. #define InfoFixed(label,text,args,numlines)\
  350.         InfoObject,\
  351.                 LAB_LABEL,              label,\
  352.                 FRM_TYPE,               FRTYPE_BUTTON,\
  353.                 FRM_FLAGS,              FRF_RECESSED,\
  354.                 INFO_TEXTFORMAT,        text,\
  355.                 INFO_ARGS,              args,\
  356.                 INFO_MINLINES,          numlines,\
  357.                 INFO_FIXTEXTWIDTH,      TRUE,\
  358.         EndObject
  359.  
  360. #define InfoObj(label,text,args,numlines)\
  361.         InfoObject,\
  362.                 LAB_LABEL,              label,\
  363.                 FRM_TYPE,               FRTYPE_BUTTON,\
  364.                 FRM_FLAGS,              FRF_RECESSED,\
  365.                 INFO_TEXTFORMAT,        text,\
  366.                 INFO_ARGS,              args,\
  367.                 INFO_MINLINES,          numlines,\
  368.         EndObject
  369.  
  370. /*****************************************************************************
  371.  *
  372.  *      "Quick" string/integer creation macros.
  373.  */
  374. #define StringG(label,contents,maxchars,id)\
  375.         StringObject,\
  376.                 LAB_LABEL,              label,\
  377.                 FRM_TYPE,               FRTYPE_RIDGE,\
  378.                 STRINGA_TEXTVAL,        contents,\
  379.                 STRINGA_MAXCHARS,       maxchars,\
  380.                 GA_ID,                  id,\
  381.         EndObject
  382.  
  383. #define KeyString(label,contents,maxchars,id)\
  384.         StringObject,\
  385.                 LAB_LABEL,              label,\
  386.                 LAB_UNDERSCORE,         "_",\
  387.                 FRM_TYPE,               FRTYPE_RIDGE,\
  388.                 STRINGA_TEXTVAL,        contents,\
  389.                 STRINGA_MAXCHARS,       maxchars,\
  390.                 GA_ID,                  id,\
  391.         EndObject
  392.  
  393. #define TabString(label,contents,maxchars,id)\
  394.         StringObject,\
  395.                 LAB_LABEL,              label,\
  396.                 FRM_TYPE,               FRTYPE_RIDGE,\
  397.                 STRINGA_TEXTVAL,        contents,\
  398.                 STRINGA_MAXCHARS,       maxchars,\
  399.                 GA_ID,                  id,\
  400.                 GA_TABCYCLE,            TRUE,\
  401.         EndObject
  402.  
  403. #define TabKeyString(label,contents,maxchars,id)\
  404.         StringObject,\
  405.                 LAB_LABEL,              label,\
  406.                 LAB_UNDERSCORE,         "_",\
  407.                 FRM_TYPE,               FRTYPE_RIDGE,\
  408.                 STRINGA_TEXTVAL,        contents,\
  409.                 STRINGA_MAXCHARS,       maxchars,\
  410.                 GA_ID,                  id,\
  411.                 GA_TABCYCLE,            TRUE,\
  412.         EndObject
  413.  
  414. #define Integer(label,contents,maxchars,id)\
  415.         StringObject,\
  416.                 LAB_LABEL,              label,\
  417.                 FRM_TYPE,               FRTYPE_RIDGE,\
  418.                 STRINGA_LONGVAL,        contents,\
  419.                 STRINGA_MAXCHARS,       maxchars,\
  420.                 GA_ID,                  id,\
  421.         EndObject
  422.  
  423. #define KeyInteger(label,contents,maxchars,id)\
  424.         StringObject,\
  425.                 LAB_LABEL,              label,\
  426.                 LAB_UNDERSCORE,         "_",\
  427.                 FRM_TYPE,               FRTYPE_RIDGE,\
  428.                 STRINGA_LONGVAL,        contents,\
  429.                 STRINGA_MAXCHARS,       maxchars,\
  430.                 GA_ID,                  id,\
  431.         EndObject
  432.  
  433. #define TabInteger(label,contents,maxchars,id)\
  434.         StringObject,\
  435.                 LAB_LABEL,              label,\
  436.                 FRM_TYPE,               FRTYPE_RIDGE,\
  437.                 STRINGA_LONGVAL,        contents,\
  438.                 STRINGA_MAXCHARS,       maxchars,\
  439.                 GA_ID,                  id,\
  440.                 GA_TABCYCLE,            TRUE,\
  441.         EndObject
  442.  
  443. #define TabKeyInteger(label,contents,maxchars,id)\
  444.         StringObject,\
  445.                 LAB_LABEL,              label,\
  446.                 LAB_UNDERSCORE,         "_",\
  447.                 FRM_TYPE,               FRTYPE_RIDGE,\
  448.                 STRINGA_LONGVAL,        contents,\
  449.                 STRINGA_MAXCHARS,       maxchars,\
  450.                 GA_ID,                  id,\
  451.                 GA_TABCYCLE,            TRUE,\
  452.         EndObject
  453.  
  454. /*****************************************************************************
  455.  *
  456.  *      "Quick" scroller creation macros.
  457.  */
  458. #define HorizScroller(label,top,total,visible,id)\
  459.         PropObject,\
  460.                 LAB_LABEL,              label,\
  461.                 PGA_TOP,                top,\
  462.                 PGA_TOTAL,              total,\
  463.                 PGA_VISIBLE,            visible,\
  464.                 PGA_FREEDOM,            FREEHORIZ,\
  465.                 GA_ID,                  id,\
  466.                 PGA_ARROWS,             TRUE,\
  467.         EndObject
  468.  
  469. #define VertScroller(label,top,total,visible,id)\
  470.         PropObject,\
  471.                 LAB_LABEL,              label,\
  472.                 PGA_TOP,                top,\
  473.                 PGA_TOTAL,              total,\
  474.                 PGA_VISIBLE,            visible,\
  475.                 GA_ID,                  id,\
  476.                 PGA_ARROWS,             TRUE,\
  477.         EndObject
  478.  
  479. #define KeyHorizScroller(label,top,total,visible,id)\
  480.         PropObject,\
  481.                 LAB_LABEL,              label,\
  482.                 LAB_UNDERSCORE,         "_",\
  483.                 PGA_TOP,                top,\
  484.                 PGA_TOTAL,              total,\
  485.                 PGA_VISIBLE,            visible,\
  486.                 PGA_FREEDOM,            FREEHORIZ,\
  487.                 GA_ID,                  id,\
  488.                 PGA_ARROWS,             TRUE,\
  489.         EndObject
  490.  
  491. #define KeyVertScroller(label,top,total,visible,id)\
  492.         PropObject,\
  493.                 LAB_LABEL,              label,\
  494.                 LAB_UNDERSCORE,         "_",\
  495.                 PGA_TOP,                top,\
  496.                 PGA_TOTAL,              total,\
  497.                 PGA_VISIBLE,            visible,\
  498.                 GA_ID,                  id,\
  499.                 PGA_ARROWS,             TRUE,\
  500.         EndObject
  501.  
  502. /*****************************************************************************
  503.  *
  504.  *      "Quick" indicator creation macros.
  505.  */
  506. #define Indicator(min,max,level,just)\
  507.         IndicatorObject,\
  508.                 INDIC_MIN,              min,\
  509.                 INDIC_MAX,              max,\
  510.                 INDIC_LEVEL,            level,\
  511.                 INDIC_JUSTIFICATION,    just,\
  512.         EndObject
  513.  
  514. #define IndicatorFormat(min,max,level,just,format)\
  515.         IndicatorObject,\
  516.                 INDIC_MIN,              min,\
  517.                 INDIC_MAX,              max,\
  518.                 INDIC_LEVEL,            level,\
  519.                 INDIC_JUSTIFICATION,    just,\
  520.                 INDIC_FORMATSTRING,     format,\
  521.         EndObject
  522.  
  523. /*****************************************************************************
  524.  *
  525.  *      "Quick" progress creation macros.
  526.  */
  527. #define HorizProgress(label,min,max,done)\
  528.         ProgressObject,\
  529.                 LAB_LABEL,              label,\
  530.                 FRM_TYPE,               FRTYPE_BUTTON,\
  531.                 FRM_FLAGS,              FRF_RECESSED,\
  532.                 PROGRESS_MIN,           min,\
  533.                 PROGRESS_MAX,           max,\
  534.                 PROGRESS_DONE,          done,\
  535.         EndObject
  536.  
  537. #define VertProgress(label,min,max,done)\
  538.         ProgressObject,\
  539.                 LAB_LABEL,              label,\
  540.                 FRM_TYPE,               FRTYPE_BUTTON,\
  541.                 FRM_FLAGS,              FRF_RECESSED,\
  542.                 PROGRESS_MIN,           min,\
  543.                 PROGRESS_MAX,           max,\
  544.                 PROGRESS_DONE,          done,\
  545.                 PROGRESS_VERTICAL,      TRUE,\
  546.         EndObject
  547.  
  548. /*****************************************************************************
  549.  *
  550.  *      "Quick" slider creation macros.
  551.  */
  552. #define HorizSlider(label,min,max,level,id)\
  553.         SliderObject,\
  554.                 LAB_LABEL,              label,\
  555.                 SLIDER_MIN,             min,\
  556.                 SLIDER_MAX,             max,\
  557.                 SLIDER_LEVEL,           level,\
  558.                 GA_ID,                  id,\
  559.         EndObject
  560.  
  561. #define VertSlider(label,min,max,level,id)\
  562.         SliderObject,\
  563.                 LAB_LABEL,              label,\
  564.                 SLIDER_MIN,             min,\
  565.                 SLIDER_MAX,             max,\
  566.                 SLIDER_LEVEL,           level,\
  567.                 PGA_FREEDOM,            FREEVERT,\
  568.                 GA_ID,                  id,\
  569.         EndObject
  570.  
  571. #define KeyHorizSlider(label,min,max,level,id)\
  572.         SliderObject,\
  573.                 LAB_LABEL,              label,\
  574.                 LAB_UNDERSCORE,         "_",\
  575.                 SLIDER_MIN,             min,\
  576.                 SLIDER_MAX,             max,\
  577.                 SLIDER_LEVEL,           level,\
  578.                 GA_ID,                  id,\
  579.         EndObject
  580.  
  581. #define KeyVertSlider(label,min,max,level,id)\
  582.         SliderObject,\
  583.                 LAB_LABEL,              label,\
  584.                 LAB_UNDERSCORE,         "_",\
  585.                 SLIDER_MIN,             min,\
  586.                 SLIDER_MAX,             max,\
  587.                 SLIDER_LEVEL,           level,\
  588.                 PGA_FREEDOM,            FREEVERT,\
  589.                 GA_ID,                  id,\
  590.         EndObject
  591.  
  592. /*****************************************************************************
  593.  *
  594.  *      "Quick" mx creation macros.
  595.  */
  596. #define RightMx(label,labels,active,id)\
  597.         MxObject,\
  598.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  599.                 LAB_LABEL,              label,\
  600.                 MX_LABELS,              labels,\
  601.                 MX_ACTIVE,              active,\
  602.                 GA_ID,                  id,\
  603.         EndObject FixMinSize
  604.  
  605. #define LeftMx(label,labels,active,id)\
  606.         MxObject,\
  607.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  608.                 LAB_LABEL,              label,\
  609.                 MX_LABELS,              labels,\
  610.                 MX_ACTIVE,              active,\
  611.                 MX_LABELPLACE,          PLACE_LEFT,\
  612.                 GA_ID,                  id,\
  613.         EndObject FixMinSize
  614.  
  615. #define RightMxKey(label,labels,active,id)\
  616.         MxObject,\
  617.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  618.                 LAB_LABEL,              label,\
  619.                 LAB_UNDERSCORE,         "_",\
  620.                 MX_LABELS,              labels,\
  621.                 MX_ACTIVE,              active,\
  622.                 GA_ID,                  id,\
  623.         EndObject FixMinSize
  624.  
  625. #define LeftMxKey(label,labels,active,id)\
  626.         MxObject,\
  627.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  628.                 LAB_LABEL,              label,\
  629.                 LAB_UNDERSCORE,         "_",\
  630.                 MX_LABELS,              labels,\
  631.                 MX_ACTIVE,              active,\
  632.                 MX_LABELPLACE,          PLACE_LEFT,\
  633.                 GA_ID,                  id,\
  634.         EndObject FixMinSize
  635.  
  636. /*****************************************************************************
  637.  *
  638.  *      "Quick" listview creation macros.
  639.  */
  640. #define StrListview(label,strings,id)\
  641.         ListviewObject,\
  642.                 LAB_LABEL,              label,\
  643.                 GA_ID,                  id,\
  644.                 LISTV_ENTRYARRAY,       strings,\
  645.         EndObject
  646.  
  647. #define StrListviewSorted(label,strings,id)\
  648.         ListviewObject,\
  649.                 LAB_LABEL,              label,\
  650.                 GA_ID,                  id,\
  651.                 LISTV_ENTRYARRAY,       strings,\
  652.                 LISTV_SORTENTRYARRAY,   TRUE,\
  653.         EndObject
  654.  
  655. #define ReadStrListview(label,strings)\
  656.         ListviewObject,\
  657.                 LAB_LABEL,              label,\
  658.                 LISTV_ENTRYARRAY,       strings,\
  659.                 LISTV_READONLY,         TRUE,\
  660.         EndObject
  661.  
  662. #define ReadStrListviewSorted(label,strings)\
  663.         ListviewObject,\
  664.                 LAB_LABEL,              label,\
  665.                 LISTV_ENTRYARRAY,       strings,\
  666.                 LISTV_SORTENTRYARRAY,   TRUE,\
  667.                 LISTV_READONLY,         TRUE,\
  668.         EndObject
  669.  
  670. #define MultiStrListview(label,strings,id)\
  671.         ListviewObject,\
  672.                 LAB_LABEL,              label,\
  673.                 GA_ID,                  id,\
  674.                 LISTV_ENTRYARRAY,       strings,\
  675.                 LISTV_MULTISELECT,      TRUE,\
  676.         EndObject
  677.  
  678. #define MultiStrListviewSorted(label,strings,id)\
  679.         ListviewObject,\
  680.                 LAB_LABEL,              label,\
  681.                 GA_ID,                  id,\
  682.                 LISTV_ENTRYARRAY,       strings,\
  683.                 LISTV_SORTENTRYARRAY,   TRUE,\
  684.                 LISTV_MULTISELECT,      TRUE,\
  685.         EndObject
  686.  
  687. /*****************************************************************************
  688.  *
  689.  *      "Quick" seperator bar creation macros.
  690.  */
  691. #define VertSeperator \
  692.         SeperatorObject,\
  693.         EndObject FixMinWidth
  694.  
  695. #define VertThinSeperator \
  696.         SeperatorObject,\
  697.                 SEP_THIN,               TRUE,\
  698.         EndObject FixMinWidth
  699.  
  700. #define HorizSeperator \
  701.         SeperatorObject,\
  702.                 SEP_HORIZ,              TRUE,\
  703.         EndObject FixMinHeight
  704.  
  705. #define TitleSeperator(t)\
  706.         SeperatorObject,\
  707.                 SEP_HORIZ,              TRUE,\
  708.                 SEP_TITLE,              t,\
  709.         EndObject FixMinHeight
  710.  
  711. #define HTitleSeperator(t)\
  712.         SeperatorObject,\
  713.                 SEP_HORIZ,              TRUE,\
  714.                 SEP_TITLE,              t,\
  715.                 SEP_HIGHLIGHT,          TRUE,\
  716.         EndObject FixMinHeight
  717.  
  718. #define CTitleSeperator(t)\
  719.         SeperatorObject,\
  720.                 SEP_HORIZ,              TRUE,\
  721.                 SEP_TITLE,              t,\
  722.                 SEP_CENTERTITLE,        TRUE,\
  723.         EndObject FixMinHeight
  724.  
  725. #define CHTitleSeperator(t)\
  726.         SeperatorObject,\
  727.                 SEP_HORIZ,              TRUE,\
  728.                 SEP_TITLE,              t,\
  729.                 SEP_HIGHLIGHT,          TRUE,\
  730.                 SEP_CENTERTITLE,        TRUE,\
  731.         EndObject FixMinHeight
  732.  
  733. /*****************************************************************************
  734.  *
  735.  *      Base class method macros.
  736.  */
  737. #define AddMap(object,target,map)\
  738.         domethod( object, [ BASE_ADDMAP, target, map ] )
  739.  
  740. #define AddCondit(object,target,ttag,tdat,ftag,fdat,stag,sdat)\
  741.         domethod( object, [ BASE_ADDCONDITIONAL, target,\
  742.                   ttag, tdat,\
  743.                   ftag, fdat,\
  744.                   stag, sdat ] )
  745.  
  746. #define AddHook(object,hook)\
  747.         domethod( object, [ BASE_ADDHOOK, hook ] )
  748.  
  749. #define RemMap(object,target)\
  750.         domethod( object, [ BASE_REMMAP, target  ] )
  751.  
  752. #define RemCondit(object,target)\
  753.         domethod( object, [ BASE_REMCONDITIONAL, target ] )
  754.  
  755. #define RemHook( object,hook)\
  756.         domethod( object, [ BASE_REMHOOK, hook ] )
  757.  
  758. /*****************************************************************************
  759.  *
  760.  *      Listview class method macros.
  761.  */
  762. #define AddEntry(window,object,entry,how)\
  763.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  764.                              NIL, entry, how, 0 ] )
  765.  
  766. #define AddEntryVisible(window,object,entry,how)\
  767.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  768.                              NIL, entry, how, LVASF_MAKEVISIBLE ] )
  769.  
  770. #define AddEntrySelect(window,object,entry,how)\
  771.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  772.                              NIL, entry, how, LVASF_SELECT ] )
  773.  
  774. #define ClearList(window,object)\
  775.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_CLEAR, NIL ] )
  776.  
  777. #define FirstEntry(object)\
  778.         domethod( object, [ LVM_FIRSTENTRY, NIL, 0 ] )
  779.  
  780. #define FirstSelected(object)\
  781.         domethod( object, [ LVM_FIRSTENTRY, NIL, LVGEF_SELECTED ] )
  782.  
  783. #define LastEntry(object)\
  784.         domethod( object, [ LVM_LASTENTRY, NIL, 0 ] )
  785.  
  786. #define LastSelected(object)\
  787.         domethod( object, [ LVM_LASTENTRY, NIL, LVGEF_SELECTED ] )
  788.  
  789. #define NextEntry(object,last)\
  790.         domethod( object, [ LVM_NEXTENTRY, last, 0 ] )
  791.  
  792. #define NextSelected(object,last)\
  793.         domethod( object, [ LVM_NEXTENTRY, last, LVGEF_SELECTED ] )
  794.  
  795. #define PrevEntry(object,last)\
  796.         domethod( object, [ LVM_PREVENTRY, last, 0 ] )
  797.  
  798. #define PrevSelected(object,last)\
  799.         domethod( object, [ LVM_PREVENTRY, last, LVGEF_SELECTED ] )
  800.  
  801. #define RemoveEntry(object,entry)\
  802.         domethod( object, [ LVM_REMENTRY, NIL, entry ] )
  803.  
  804. #define RemoveEntryVisible(window,object,entry)\
  805.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_REMENTRY, NIL, entry ] )
  806.  
  807. #define RefreshList(window,object)\
  808.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_REFRESH, NIL ] )
  809.  
  810. #define SortList(window,object)\
  811.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_SORT, NIL ] )
  812.  
  813. #define LockList(object)\
  814.         domethod( object, [ LVM_LOCKLIST, NIL ] )
  815.  
  816. #define UnlockList(window,object)\
  817.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_UNLOCKLIST, NIL ] )
  818.  
  819. /*****************************************************************************
  820.  *
  821.  *      Window class method macros.
  822.  */
  823. #define GadgetKey(wobj,gobj,key)\
  824.         domethod( wobj, [ WM_GADGETKEY, NIL, gobj, key ] )
  825.  
  826. #define WindowOpen(wobj)\
  827.         domethod( wobj, [ WM_OPEN ] )
  828.  
  829. #define WindowClose(wobj)\
  830.         domethod( wobj, [ WM_CLOSE ] )
  831.  
  832. #define WindowBusy(wobj)\
  833.         domethod( wobj, [ WM_SLEEP ] )
  834.  
  835. #define WindowReady(wobj)\
  836.         domethod( wobj, [ WM_WAKEUP ] )
  837.  
  838. #define HandleEvent(wobj)\
  839.         domethod( wobj, [ WM_HANDLEIDCMP ] )
  840.  
  841. #define DisableMenu(wobj,id,set)\
  842.         domethod( wobj, [ WM_DISABLEMENU, id, set ] )
  843.  
  844. #define CheckItem(wobj,id,set)\
  845.         domethod( wobj, [ WM_CHECKITEM, id, set ] )
  846.  
  847. #define MenuDisabled(wobj,id)\
  848.         domethod( wobj, [ WM_MENUDISABLED, id ] )
  849.  
  850. #define ItemChecked(wobj,id)\
  851.         domethod( wobj, [ WM_ITEMCHECKED, id ] )
  852.  
  853. #define GetAppMsg(wobj)\
  854.         domethod( wobj, [ WM_GETAPPMSG ] )
  855.  
  856. #define AddUpdate(wobj,id,target,map)\
  857.         domethod( wobj, [ WM_ADDUPDATE, id, target, map ] )
  858.  
  859. /*****************************************************************************
  860.  *
  861.  *      Commodity class method macros.
  862.  */
  863. #define AddHotkey(broker,desc,id,flags)\
  864.         domethod( broker, [ CM_ADDHOTKEY, desc, id, flags ] )
  865.  
  866. #define RemHotkey(broker,id)\
  867.         domethod( broker, [ CM_REMHOTKEY, id ] )
  868.  
  869. #define DisableHotkey(broker,id)\
  870.         domethod( broker, [ CM_DISABLEHOTKEY, id ] )
  871.  
  872. #define EnableHotKey(broker,id)\
  873.         domethod( broker, [ CM_ENABLEHOTKEY, id ] )
  874.  
  875. #define EnableBroker(broker)\
  876.         domethod( broker, [ CM_ENABLEBROKER ] )
  877.  
  878. #define DisableBroker(broker)\
  879.         domethod( broker, [ CM_DISABLEBROKER ] )
  880.  
  881. #define MsgInfo(broker,type,id,data)\
  882.         domethod( broker, [ CM_MSGINFO,\
  883.                   ( ULONG * )type,\
  884.                   ( ULONG * )id,\
  885.                   ( ULONG * )data ] )
  886.  
  887. /*****************************************************************************
  888.  *
  889.  *      FileReq class method macros.
  890.  */
  891. #define DoRequest(object)\
  892.         domethod( object, [ FRM_DOREQUEST ] )
  893.